return checksumRecalculateRequestServerVersionMinSupportedMajor;
}
+bool Account::bulkUploadNeedsLegacyChecksumHeader() const
+{
+ return serverVersionInt() < makeServerVersion(32, 0, 0);
+}
+
void Account::setServerVersion(const QString &version)
{
if (version == _serverVersion) {
[[nodiscard]] int checksumRecalculateServerVersionMinSupportedMajor() const;
+ [[nodiscard]] bool bulkUploadNeedsLegacyChecksumHeader() const;
+
/** True when the server connection is using HTTP2 */
bool isHttp2Supported() { return _http2Supported; }
void setHttp2Supported(bool value) { _http2Supported = value; }
const auto remotePath = propagator()->fullRemotePath(fileToUpload._file);
- currentHeaders["X-File-MD5"] = md5ChecksumHeader;
+ if (!md5ChecksumHeader.isEmpty()) {
+ currentHeaders["X-File-MD5"] = md5ChecksumHeader;
+ }
currentHeaders[checkSumHeaderC] = transmissionChecksumHeader;
BulkUploadItem newUploadFile{propagator()->account(), item, fileToUpload,
computeChecksum->setChecksumType(checksumType);
connect(computeChecksum, &ComputeChecksum::done, this, [this, item, fileToUpload] (const QByteArray &contentChecksumType, const QByteArray &contentChecksum) {
- slotComputeMd5Checksum(item, fileToUpload, contentChecksumType, contentChecksum);
+ if (propagator()->account()->bulkUploadNeedsLegacyChecksumHeader()) {
+ slotComputeMd5Checksum(item, fileToUpload, contentChecksumType, contentChecksum);
+ } else {
+ slotStartUpload(item, fileToUpload, contentChecksumType, contentChecksum, {});
+ }
});
connect(computeChecksum, &ComputeChecksum::done, computeChecksum, &QObject::deleteLater);